<?php

require_once(drupal_get_path('module','gc_filters').'/interfaces/IGcFilterFormPreparationHandler.interface.php');
require_once(dirname(__FILE__).'/../panes/GcProducerPane.class.php');

/**
 * Klasa generująca elementy formularza służacego do aktywacji poszczególnych filtrów
 * 
 * @author strange3studio
 *
 */
class GcProducerFilterFormPreparationHandler implements IGcFilterFormPreparationHandler {
  
  // group id that need Filtration Form
  private $_gid;
  
  // tablica przechowująca aktualne ustawienia grupy odnośnie włączonych filtrów
  private $_panesEnabled;
  
  // zmienna mówiąca o tym ile jest aktywnych filtrów w grupi
  private $_panesEnabledCount;
  
  private function countEnabledPanes() {
    $this->_panesEnabledCount = count($this->_panesEnabled); 
  }
  
  private function filterPanes($gid) {

    $sql = db_query("SELECT filter_by_producer
                     FROM {gcf_producer} WHERE gnid=%d",$gid);
    
    $result = db_fetch_object($sql);
    dvm($result);
    $filters_applied = array();
    
    $filters_applied = array();
    
    if ($result) {
      $filters_applied['filter_by_producer'] = $result->filter_by_producer;
    }
    
    return $filters_applied;
  }
  
  public function __construct($gid) {
    $this->_gid = $gid;
    $this->_panesEnabled = $this->filterPanes($gid);
    $this->countEnabledPanes();
  }
  
  
  
  
  public function generateForm() {

    $form = array();
    /* 
     * pobierz tablicę z filtrami, które zostały włączone dla tej treści
     */
     $standard_filters_applied = $this->_panesEnabled;

     /* 
      * budujemy formularz do wyboru ustawień filtrowania zawartości 
      * katalogu grup ze względu na producenta
      */
     if (isset($standard_filters_applied['filter_by_producer'])) {
     	  $gcProducerPane =  new GcProducerPane();
        $form['producent'] = $gcProducerPane->buildPane($this->_gid);
     }   
    return $form;
  }
  
  public function panesEnabledCount() {
    return $this->_panesEnabledCount;
  }


  
}